import type { IUserInfoResp } from '@/api/types'
import { defineStore } from 'pinia'

export const useUserStore = defineStore('user', () => {
  // 用户基本信息
  const userInfo = ref<IUserInfoResp | null>(null)
  // 登录状态
  const isLogin = computed(() => !!userInfo.value?.username)

  // 设置用户信息
  const setUserInfo = (info: IUserInfoResp) => {
    userInfo.value = info
  }

  // 清除用户信息（退出登录）
  const clearUserInfo = () => {
    userInfo.value = null
  }

  // 更新用户头像
  const updateAvatar = (avatar: string) => {
    if (userInfo.value) {
      userInfo.value.avatar = avatar
    }
  }

  // 更新用户昵称
  const updateNickname = (nickname: string) => {
    if (userInfo.value) {
      userInfo.value.nickname = nickname
    }
  }

  return {
    userInfo,
    isLogin,
    setUserInfo,
    clearUserInfo,
    updateAvatar,
    updateNickname,
  }
}, {
  persist: true,
})
